
package redeS.mensagem;

/**
 * Mensagem Query.
 * A mensagem Gnutella Query serve para buscar um recurso.
 * @author thiago-pc
 */
public class Query extends GnutellaMessage {

	// filename não é relevante
	// netSpeed nao é relevante
	private double popularity;
	
	/**
	 * Além dos dados do cabeçalho (veja abaixo no construtor da superclasse), contem um
	 * parâmetro que não existe realmente na mensagem Query.
	 * @param popularity Popularidade do arquivo que está sendo buscado. Esse double
	 * influencia diretamente na probabilidade dos vizinhos de terem esse arquivo.
	 * Para testes gerais esse número deve ser randômico.
	 * @see GnutellaMessage#GnutellaMessage(long, int)
	 */
	public Query(long descriptorID, int TTL, double popularity) {
		super(descriptorID, TTL);
		this.popularity = popularity;
	}
	
	/**
	 * Popularidade do arquivo que está sendo buscado.
	 * @return double popularity
	 */
	public double getPopularity(){
		return popularity;
	}
}
